Dernière mise à jour décembre 2004, sept 2011
Vous trouverez
ci-dessous des outils de travail, notamment des unités, permettant d'implémenter
des fonctions particulières, utiles aux calculs de mécanique spatiale. Il va de
soi, que ces programmes ne sont pas un travail de spécialiste, mais l'auteur
pense qu'ils ont été suffisamment éprouvés pour que leur fiabilité soit
assurée.
On rappelle
que les unités en langage PASCAL, ont l'extension .TPU, les exécutables .EXE et
les sources .PAS
TRES
INTERESSANT: Un programme
d'éphémérides du BDL ( Bureau Des Longitudes), fournissant sous DOS 6.2, avec
grande précision les éphémérides des planètes du système solaire. Le pack est
dans le répertoire EPHEMERI, directement dans la racine du site. Exécuter planeph.exe,
attention cette routine ne fonctionne qu'en
INTRANET et pas à travers un navigateur.
UTILE
POUR LES SIMULATIONS DE POINTS SURVOLES EN KEPLERIEN: Un programme nommé SOLSTICE dont l'autorisation de récupération et d'usage à
l'intention des enseignants est explicite. Agréable et bien fait, il servira à
une première approche dans l'étude des traces sol, soit aux étudiants du DESS
TAE, soit à des élèves de terminale lors de TIPE. NB : Ne cherchez pas à le télécharger sur
ce site, car il nécessite des ressources importantes, Seule l'exécution est
possible.
Diverses versions adaptées aux machines existantes, sont téléchargeables ( 8 Mo compactés et 26 Mo décompactés ) à condition d'aller sur le site propriétaire : ftp://trf.education.gouv.fr/pub/educnet/orbito/solstice9x.exe
I - OUTILS EN LANGAGE C++
Actuellement,
ils concernent essentiellement la résolution du programme de Lambert, qui a été
mené à bien et complètement mis au point, à l'occasion d'un projet de fin
d'année en 2003, par 2 étudiantes( Mesdemoiselles DAUVIN & CASTELLANI ) du
DESS TAE à UNIMECA Université de Provence à Château-Gombert.
L'ensemble se
trouve dans \mecaspa\ROUTINES\Prog_c++\Problème de Lambert\Résolution par
Dauvin&Castellani que vous pouvez récupérer en téléchargeant LAMBERTC.ZIP. Ses éléments sont :
1. elliptique.cpp : contient toutes les fonctions
qui permettent la résolution du problème dans le cas elliptique.
2. hyperbole.cpp : équivalent de alpha1.cpp pour le
cas elliptique.
3. parametre.cpp : contient les fonctions qui
gèrent le temps dans les cas elliptique et hyperbolique ainsi que la saisie des
coordonnées des planètes (non active pour le moment mais facilement activable).
4. saisie.cpp : gère toutes les questions de saisie
au lancement de programme ainsi que l’affichage.
5. operation.cpp : gère toutes les opérations sur
les vecteurs (produit scalaire, produit vectoriel, norme…).
II - UNITES SOUS TURBO PASCAL 6.O: notées
********.TPU
AIRSTAND
: utile
pour la modélisation de l'atmosphère terrestre, implémente 2 fonctions
function rho(z:real):real;
Donne la masse
volumique de l'air en fonction de l'altitude z en km
function vitson(z:real):real;
Vitesse du son
fonction de z
CONSTYPE
:( A
utiliser obligatoirement avec toutes les autres et tous les programmes ainsi
que WinCrt)
Elle contient les
constantes de gravitation des astres du système solaire, les rayons
des planètes et également deux déclarations de type vecteur et tabparam
DATES
: Cette unité offre des fonctions
de traitement des dates, classiques en astronautique, surtout avec la date
julienne.
function
DateSimple(x:real):STRING donne
l'écriture simplifiée de la date calendaire correspondant à la date julienne x
donnée en nombre réel , y est de type string.
EXEMPLE :
20122001=DateSimple(719.03168982) soit le 20/12/2001
function
HeureSimple(x:real):STRING donne
l'écriture simplifiée de l'heure dans le jour correspondant à la date julienne
x donnée en nombre réel , y est de type string
EXEMPLE :
124538=DateSimple(719.03168982) soit à 12 h 45 mn 38 s
function
DateNormale(x:real):STRING donne la
date sous forme classique JJ/MM/AAAA lorsqu'on entre la date julienne
fractionnaire. Sortie de type string.
function
HeureDecimale(x:real):REAL donne
l'heure dans le jour sous forme décimale lorsqu'on entre la date julienne du
jour en réel partie entière et fractionnaire.
function
JourJuli(x1,x2:string):REAL donne la
date julienne avec en entrée: la date calendaire x1 sous la forme simplifiée
STRING à 6 caractères (EX : 23 décembre 99-->x1=23121999) et l'heure
simplifiée x2 STRING ( EX : 15 h 45 mn 56 s --->x2=154546 )
EXEMPLE
JourJuli('22102002','124556'))= 1025.0318981
LE 22 OCTOBRE
2002 à 12 h 45 mn 56 s est le Jour Julien 1025.0318981
DATECAL: Cette unité fournit une procédure de calcul de la date classique du
calendrier:
PROCEDURE
DATE_CAL(datejuli: real;var annee,mois,jourmois, heure, minute, seconde
:integer);
Entrée: DateJuli, la
date julienne nouvelle comptée depuis le 12/1/20000 à 12 h
Sortie: année, mois, jour, heure, minutes, secondes : des
entiers de la date
DJJ_NORM
: {Cette unité peut être utilisée dans les programmes
pour convertir une date julienne en une date normale du calendrier républicain
actuel}. Elle met en place la procédure :
PROCEDURE
ConversionDateJulienneNormale(var datejuli:real;var
Jour,Mois,Annee,Heure,Minute,Seconde: integer);
FCTMARS : Cette unité fournit
des fonctions, une procédure utile au voyage Terre-Mars (ELLIPTIQUE SEUL) et une procédure pour le voyage de retour (ELLIPTIQUE SEUL). C'est la seule planète, pour laquelle vous
trouverez une étude du retour
PROCEDURE
TERRE_MARS(var JJD,JJA,C3D,C3A:real;Var
vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR
param:tabparam;possible:real);
{Cette logique
détermine la trajectoire képlérienne joignant la Terre et Mars dans le repère
j2000 héliocentrique,en ne demandant que les dates de départ JJD et d'arrivée
JJA, dates en jours juliens.
PROCEDURE
MARS_TERRE(var JJD,JJA,C3D,C3A:real;Var
vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR
param:tabparam;possible:real);
{Cette logique
détermine la trajectoire képlérienne joignant Mars et la Terre dans le repère
j2000 héliocentrique,en ne demandant que les dates de départ JJD et d'arrivée
JJA, dates en jours juliens.
VARIABLES DE
SORTIE (pour les 2 procédures):
Possible:real,
est une variable réelle qui doit impérativement faire l'objet d'un test pour
savoir si une ellipse est possible ou pas:
Possible = 1
ellipse réalisable
Possible=0
ellipse irréalisable
C3D : constante
C3 de départ de la terre en km²/s² (resp mars)
C3A : constante
C3 d'arrivée près de Mars en km²/s² (resp terre)
Vitinfdep :
vitesse à l'infini de départ de la terre, en km/s (resp mars)
Vitinfar :
vitesse à l'infini d'arrivée près de mars, en km/s (resp terre)
Vitdepart ;
vitesse absolue héliocentrique de départ à la limite sphère d'influence, en
km/s, de la planète de départ
Vitarrivée ;
vitesse absolue héliocentrique d'arrivée à la limite sphère d'influence, en
km/s, de la planète d'arrivée
vd vitesse terre
à JJD (resp mars)
va vitesse Mars à
JJA (resp terre)
PARAM: tableau
des paramètres orbitaux à partir desquels on peut calculer des vitesses etc...
param[1]:demi
grand-axe en km
param[2]:excentricité
param[3]:inclinaison
orbitale en radian
param[4]:argument
nodal du périgée en radian
param[5]:longitude
vernale de la ligne des nœuds en radian
param[6]:anomalie
excentrique en radian
param[7]:date
julienne de premier passage au périgée
FUNCTION
C3MDEPART(JJD,JJA:real):real; retourne
la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Mars
commençant à la date julienne JJD et s'achevant à la date julienne JJA
FUNCTION
C3MARRIVEE(JJD,JJA:real):real;
retourne la constante C3=(Vinfinie)² à l'arrivée sur mars, pour un voyage
Terre-Mars commençant à la date julienne JJD et s'achevant à la date julienne
JJA
FUNCTION C3TDEPARTDEMARS(JJD,JJA:real):real; retourne la constante C3=(Vinfinie)² au départ de
Mars, pour un voyage Mars-Terre commençant à la date julienne JJD et s'achevant
à la date julienne JJA
FUNCTION
C3TARRIVEESURTERRE(JJD,JJA:real):real;
retourne la constante C3=(Vinfinie)² à l'arrivée sur Terre, pour un voyage
Mars-Terre commençant à la date julienne JJD et s'achevant à la date julienne
JJA
FCTVENUS : Cette unité fournit des fonctions et une procédure utile au
voyage Terre-Vénus (ELLIPTIQUE
SEUL).
PROCEDURE
TERRE_VENUS(var JJD,JJA,C3D,C3A:real;Var
vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR
param:tabparam;possible:real);
{Cette logique
détermine la trajectoire képlérienne joignant la Terre et Vénus dans le repère
j2000,en ne demandant que les dates de départ JJD et d'arrivée JJA, dates en
jours juliens.
VARIABLES DE
SORTIE:
Possible:real,
est une variable réelle qui doit impérativement faire l'objet d'un test pour
savoir si une ellipse est possible ou pas:
Possible = 1
ellipse réalisable
Possible=0
ellipse irréalisable
C3D : constante
C3 de départ de la terre en km²/s²
C3A : constante
C3 d'arrivée près de Vénus en km²/s²
Vitinfdep :
vitesse à l'infini de départ de la terre, en km/s
Vitinfar :
vitesse à l'infini d'arrivée près de Vénus, en km/s
Vitdepart ;
vitesse absolue héliocentrique de départ à la limite sphère d'influence, en
km/s
Vitarrivée ;
vitesse absolue héliocentrique d'arrivée à la limite sphère d'influence, en
km/s
vd vitesse terre
à JJD
va vitesse vénus
à JJA
PARAM: tableau
des paramètres orbitaux à partir desquels on peut calculer des vitesses etc...
param[1]:demi
grand-axe en km
param[2]:excentricité
param[3]:inclinaison
orbitale en radian
param[4]:argument
nodal du périgée en radian
param[5]:longitude
vernale de la ligne des nœuds en radian
param[6]:anomalie
excentrique en radian
param[7]:date
julienne de premier passage au périgée
FUNCTION
C3VDEPART(JJD,JJA:real):real; retourne
la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Vénus
commençant à la date julienne JJD et s'achevant à la date julienne JJA
FUNCTION
C3VARRIVEE(JJD,JJA:real):real;
retourne la constante C3=(Vinfinie)² à l'arrivée sur Vénus, pour un voyage
Terre-Vénus commençant à la date julienne JJD et s'achevant à la date julienne
JJA
FCTJUPIT
: Cette unité fournit des fonctions et une
procédure utile au voyage Terre-Jupiter (ELLIPTIQUE SEUL).
PROCEDURE
TERRE_JUPITER(var JJD,JJA,C3D,C3A:real;Var
vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR
param:tabparam;possible:real); voir
plus haut pour les variables
FUNCTION
C3JDEPART(JJD,JJA:real):real; retourne
la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Jupiter
commençant à la date julienne JJD et s'achevant à la date julienne JJA
FUNCTION
C3JARRIVEE(JJD,JJA:real):real;
retourne la constante C3=(Vinfinie)² à l'arrivée sur Jupiter, pour un voyage
Terre-Jupiter commençant à la date julienne JJD et s'achevant à la date
julienne JJA
FCTSATUR
: Cette unité fournit des fonctions et une
procédure utile au voyage Terre-Vénus (ELLIPTIQUE SEUL).
PROCEDURE
TERRE_SATURNE(var JJD,JJA,C3D,C3A:real;Var
vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR
param:tabparam;possible:real); voir
plus haut pour les variables
FUNCTION
C3SDEPART(JJD,JJA:real):real; retourne
la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Saturne
commençant à la date julienne JJD et s'achevant à la date julienne JJA
FUNCTION
C3SARRIVEE(JJD,JJA:real):real;
retourne la constante C3=(Vinfinie)² à l'arrivée sur Saturne, pour un voyage
Terre-Saturne commençant à la date julienne JJD et s'achevant à la date
julienne JJA
FCTCOMET
: Cette unité fournit des fonctions et une
procédure utile au voyage Terre-Halley (ELLIPTIQUE SEUL).
PROCEDURE
TERRE_HALLEY(var JJD,JJA,C3D,C3A:real;Var
vd,va,vitdepart,vitarrivee,vitinfdep,vitinfar:vecteur;VAR
param:tabparam;possible:real); voir
plus haut pour les variables
FUNCTION
C3HDEPART(JJD,JJA:real):real; retourne
la constante C3=(Vinfinie)² au départ de la terre, pour un voyage Terre-Jcomète
de Halley commençant à la date julienne JJD et s'achevant à la date julienne
JJA
FUNCTION
CROISEMENT(JJD,JJA:real):real;
retourne la norme de la vitesse relative de croisement de la sonde et de la
comète de Halley, à l'arrivée sur Halley, pour un voyage Terre-Halley
commençant à la date julienne JJD et s'achevant à la date julienne JJA
FONSCAL
: Cette unité introduit une bibliothèque de
fonctions scalaires indispensables aux calculs habituels.
function tan(x:real):real;
Tangente de l'arc
x en radian
function arcsin(x:real):real;
Retourne en
radian arcsinus de x
function arccos(x:real):real;
Retourne en radian
arccosinus de x
function cosh(x:real):real;
Retourne le
cosinus hyperbolique de x
function sinh(x:real):real;
Retourne le sinus
hyperbolique de x
function argsh(x:real):real;
Retourne argument
sinus hyperbolique de x
function argch(x:real):real;
Retourne argument
cosinus hyperbolique de x
function argth(x:real):real;
Retourne argument
tangente hyperbolique de x
FONVECT
: Cette unité introduit
une bibliothèque de fonctions ou procédures vectorielles indispensables aux
calculs habituels. NB: les
vecteurs sont déclarés conformément à l'unité constype
procedure prodvect(vect12,vect2:vecteur; var result:
vecteur);
Réalise le
produit vectoriel des vecteurs vect1 et vect2 et retourne le
résultat result
procedure
scalvect(lambda:real;x:vecteur; var y:vecteur); Retourne avec y le vecteur produit scalaire
du vecteur x par le réel lambda
procedure
somme(vect1,vect2:vecteur;var result:vecteur); Retourne avec result le vecteur somme des
vecteurs vect1 et vect2
procedure
unitaire(vect1:vecteur;var result: vecteur);
Retourne result
vecteur unitaire du vecteur vect1
function
prodscal(vect1,vect2:vecteur): real;
Retourne le
produit scalaire des vecteurs vect1 et vect2
function norm(x:vecteur):real;
Retourne la norme
du vecteur x
function
angvect(vect1,vect2:vecteur): real;
Retourne la
valeur en radian de l'angle des vecteurs vect1 et vect2 cet angle est
arithmétique, non signé entre 0 et p
JOURJULI
: procédure donnant le jour julien d'une date
calendaire. Le calendrier julien est linéaire avec le jour n° 0 le 1er Janvier 2000 à 12 heures temps TU (c'est à dire 12 h
dans le méridien de Greenwich).
procedure
datejuli(datir,heure:string;var mj,sj,jj2000, jjancien:real);
Calcule pour une
date et heure données sous la forme '08121989 'et '130956' pour le 8/12/1989 à
13 h 9 mn 56 s,
le millénaire mj, siècle sj, le jour julien 2000 et le jour
julien ancien jjancien.
Pour plus de détails
il faut consulter des ouvrages spécialisés du CNES.
LES UNITES SUIVANTES DONNENT LES EPHEMERIDES DES PLANETES DU
SYSTEME SOLAIRE :
MERCURE
, VENUS ,TERRE , MARS, JUPITER, SATURNE, URANUS, NEPTUNE, HALLEY (date
normale), HALLEYJJ(Date julienne).
Chacune donne une
procédure fournissant les éphémérides de la planète en question, par exemple
pour Uranus, la procédure implémentée est : ephemuranus(datir,heure:string;mus:real;
imprim: integer;var param:tabparam;var r,v: vecteur);
datir est la date par exemple '081111987' le 8 novembre
1987
heure est l'heure '091234' à 9 h 12 mn 34 s
mus constante du soleil est connue dans l'unité constype
imprim est un entier valant 1 si vous souhaitez une
impression des résultats, 0 dans le cas contraire
param est un tableau de 7 réels représentant les paramètres
orbitaux de la planète
param[1]:demi- grand axe en km
param[2]:excentricité
param[3]:inclinaison (ATTENTION: en degrés pour les
sorties imprimées mais en radian pour les passages de variables
param[4]argument nodal du périgée (IDEM )
param[4]:longitude vernale de la ligne des nœuds (IDEM)
param[6]:anomalie excentrique de la position (IDEM)
param[7]:date julienne de passage prochain au périgée
r,v:rayon vecteur et vitesse en km et km/s de la
planète.
BIPOS : unité capitale pour
résoudre le problème de Lambert. (Voir plus haut des unités dérivées FctMars ou FctVenus)
procedure
ellipse_2_points(rd,ra: vecteur; datedepart, heuredepart, datearrivee,
heurearrivee: string;var param:tabparam; mu, sortie_resultats:real; var
cas:integer; var vitdepart, vitarrivee: vecteur; var dureecalculee:real);
rd,ra:sont les rayons vecteurs des points de départ et
d'arrivée donnés sous la forme de vecteurs dont le type est prédéfini dans
l'unité constype.
datedepart,heuredepart,datearrivee,
heurearrivee:à donner sous forme
'09121989' pour le 9 décembre 1989 et '152345' pour 15 h 23 mn 45 s
param est un tableau de 7 réels représentant les paramètres
orbitaux
param[1]:demi- grand axe en km
param[2]:excentricité
param[3]:inclinaison (ATTENTION: en degrés pour les
sorties imprimées mais en radian pour les passages de variables
param[4]argument nodal du périgée (IDEM )
param[4]:longitude vernale de la ligne des nœuds (IDEM)
param[6]:anomalie excentrique de la position (IDEM)
param[7]:date julienne de passage prochain au périgée
mu est la constante de gravitation du corps central
(valeur dans constype)
sortie_resultats est un réel qui prend la valeur 1 si vous voulez
imprimer les résultats 0 dans le cas contraire.
cas est un entier qui retourne le cas de vol (voir
documentation du pb de Lambert), c'est à dire le trajet sur l'ellipse en
montant ou descendant, en passant ou non par un apogée ou un périgée.
vitdepart,
vitarrivee: sont les vitesses
absolues en km/s sur la trajectoire calculée par BIPOSE
dureecalculee est la durée du voyage calculée par le programme.
PARAMRV : Calcule pour le repère périfocal les vecteurs p,q,w,
le rayon vecteur r, la vitesse v connaissant :
procedure posvitperifocal(mu:real; param:tabparam;var
p,q,w,r,v:vecteur);
mu:constante de gravitation de l'astre , prédéfinie dans
CONSTYPE
param:tableau de 7 réels représentant les paramètres
orbitaux du type prédéfini tabparam dans CONSTYPE
param[1]:demi- grand axe en km
param[2]:excentricité
param[3]:inclinaison (ATTENTION: en degrés pour les
sorties imprimées mais en radian pour les passages de variables
param[4]argument nodal du périgée (IDEM )
param[4]:longitude vernale de la ligne des nœuds (IDEM)
param[6]:anomalie excentrique de la position (IDEM)
param[7]:date julienne de passage prochain au périgée
RVPARAM:
procedure posvitparam(r,v:vecteur; datir,heuretir:
string; mu:real; var param: tabparam);
Calcule les
paramètres orbitaux d'une orbite connaissant les conditions de tir r, v
rayon vecteur et vitesse de tir, datir, heuretir la date de tir et
l'heure de tir à donner sous forme:'09031990' pour le 9 mars 1990 et '091234'
pour 9 h 12 mn 34 s, mu constante de gravitation de l'astre , prédéfinie
dans CONSTYPE
CETTE UNITE
NE TRAITE QUE LE CAS ELLIPTIQUE OU CIRCULAIRE
param est un tableau de 7 réels représentant les paramètres
orbitaux de type prédéfini tabparam dans CONSTYPE
param[1]:demi- grand axe en km
param[2]:excentricité
param[3]:inclinaison (ATTENTION: en degrés pour les
sorties imprimées mais en radian pour les passages de variables
param[4]argument nodal du périgée (IDEM )
param[4]:longitude vernale de la ligne des nœuds (IDEM)
param[6]:anomalie excentrique de la position (IDEM)
param[7]:date julienne de passage prochain au périgée
RVPARAMH:
procedure
posvitparamh(r,v:vecteur; datir,heuretir: string; mu:real; var param:
tabparam);
Calcule les
paramètres orbitaux d'une orbite connaissant les conditions de tir r, v
rayon vecteur et vitesse de tir, datir, heuretir la date de tir et
l'heure de tir à donner sous forme:'09031990' pour le 9 mars 1990 et '091234'
pour 9 h 12 mn 34 s, mu constante de gravitation de l'astre , prédéfinie
dans CONSTYPE
CETTE UNITE
TRAITE LE CAS DE TOUTES LLES ORBITES Y COMPRIS L'HYPERBOLE
param est un tableau de 7 réels représentant les paramètres
orbitaux de type prédéfini tabparam dans CONSTYPE
param[1]:demi- grand axe en km ou en millions de km
param[2]:excentricité
param[3]:inclinaison (ATTENTION: en degrés pour les
sorties imprimées mais en radian pour les passages de variables
param[4]argument nodal du périgée (IDEM )
param[4]:longitude vernale de la ligne des nœuds (IDEM)
param[6]:anomalie excentrique de la position (IDEM)
param[7]:date julienne de passage prochain au périgée pour
une ellipse ou du seul passage au périgér pour une huperbole.
TROIRAY :
Procédure de résolution du
problème de Gibbs ( voir le cours)
procedure
troispos(mu:real;x1,x2,x3: vecteur;var v1: vecteur);
Cette procédure
permet connaissant trois positions d'un mobile en mouvement képlérien de
calculer sa vitesse v1 à la première position x1.Les 3 positions
sont des vecteurs dont le type est prédéfini dans CONSTYPE.
mu est la constante de l'astre attirant. (nb :on peut
utiliser des valeurs prédéfinies dans Constype)
ZOULOU
:
function
Greenwich(datir,heure:string; imprim:integer);
Calcule l'heure
sidérale lg(t)du méridien de Greenwich à la date et l'heure données par datir
et heure.
Le format des
données est le suivant:
datir,heure la date de tir et l'heure de tir à donner sous
forme:'09031990' pour le 9 mars 1990 et '091234' pour 9 h 12 mn 34 s
MATRICE : Les procédures qui suivent ne concernent que les matrices 3*3, le type mat33 est prédéclaré dans CONSTYPE.
procedure
prodmatvect(mat:mat33;x: vecteur;var y:vecteur); Calcule le vecteur y résultat du produit matriciel
du vecteur x par la matrice mat
procedure
prodmatmat(mat1,mat2:mat33;var mat:mat33);
Réalise le
produit matriciel des matrices mat1 et mat2 et retourne le
résultat sous la variable mat.
procedure
transposmat(m:mat33;var mat:mat33);
Transpose la matrice
m et retourne le résultat dans la matrice mat.
procedure
prodscalmat(lambda:real; m:mat33;var mat:mat33); Calcule le résultat mat du produit de la
matrice m par le scalaire lambda.
procedure inversmat(m:mat33;var mat:mat33);
function trace(m:mat33):real;
Retourne la trace
de la matrice m
function
determinant(m:mat33);
Calcule l'inverse
de la matrice m et retourne le résultat sous mat
Retourne le
déterminant de la matrice m
BIPOS
ou BIPOSE: Utile dans la résolution du Problème de Lambert, cas
général
procedure
ellipse2points(rd,ra:vecteur;duree:real; mu, var cas:integer; var vitdepart,
vitarrivee: vecteur;);
rd,ra:sont les rayons vecteurs des points de départ et
d'arrivée donnés sous la forme de vecteurs dont le type est prédéfini dans
l'unité constype.
mu est la constante de gravitation (valeur dans
constype) à choisir suivant l'astre(mut ou mus....)
cas est un entier qui retourne le cas de vol.
vitdepart,vitarrivee:sont les vitesses absolues en km/s sur la
trajectoire calculée par BIPOSE
NB:
Cette unité demande une préparation des variables par l'utilisation de
jourjuli, rvparam ,dates etc...
Si vous travaillez sous Windows alors
: EXECUTER = "Clic" sur le nom
souligné Sinon rien |
ALLEGER.EXE: Permet de supprimer des lignes de séparation gênantes, dans un tableau
de sortie de résultats par le shareware TRAKSAT ( voir plus loin ). On obtient
ainsi un tableau facilement exploitable dans un tableur.
ANTENNE.EXE : Permet
de calculer l'élévation et l'azimut de l'axe d'une antenne de réception,
connaissant la position du satellite et les coordonnées géographiques de la
station de réception.
CALENDR.EXE: Calendrier universel..
DATE_CAL.EXE: Donne la date calendaire et l'heure, minutes et
secondes correspondant à une date julienne signée. On rappelle que le jour
julien 0 est le 1/1/2000 à 12 h TU.
Ces dates
doivent être dans la plage 1/1/1980 à 31/12/2019
On pourra
rentrer la date julienne sous 3 formes, entre -7305 et +7304:
Date julienne
nouvelle à compter du 1/1/2000 à 12 h
Date julienne
modifiée à compter du 1/1/2000 à 0 h
Date julienne
ancienne où le 1/1/2000 à 12 h est JJ = 2451545.5
DATEJULI.EXE ou J_JULIEN.EXE:
Fournissent la date julienne signée, connaissant la date calendaire l'heure,
les minutes et secondes en temps TU.
DEUX_PTS.EXE Résout le problème de Lambert qui consiste, si elle existe, à déterminer
l'ellipse qui joint deux points de l'espace, en un temps de
voyage fixé.
Le programme
demande de préciser si le point de départ est une planète avec sphère
d'influence, auquel cas vous donnez son nom en minuscules, ou un point
mathématique, alors défini par ses trois coordonnées qui vous sont demandées.
Pour
l'arrivée, les questions sont les mêmes. NB: Lambert1.exe pose moins de
questions et ne prend en compte que des positions en coordonnées cartésiennes
dans un repère géocentrique ou héliocentrique.
Les résultats
sont:
Les
éphémérides des deux planètes éventuellement- les paramètres orbitaux de
l'ellipse cherchée, quand elle existe - les vitesses et positions au départ et
à l'arrivée - Les vitesses à l'infini de départ et d'arrivée.- Le cas de vol.
Voir aussi plus loin plus complets et
plus généraux : LAMBERT1.EXE et aussi LAMBERTC.EXE remarquable programme en C++, réalisé par
2 étudiantes du DESS 2003.
ENZtoIJK.EXE : Utilitaire permettant de calculer position et
vitesse absolues dans le repère géocentrique équatorial, connaissant ces mêmes
données rapportées au repère géographique local E NZ (Est - Nord géographique -
Zénith ) Il trouve son usage dans le calcul ultérieur des vecteurs fondamentaux
puis des paramètres orbitaux.
EPHEMERI.EXE : Donne les éphémérides d'une planète avec une
précision faible mais acceptable pour les exercices et problèmes.
Pour des éphémérides complètes et très précises, il faut utiliser les routines du BDL, voir le pack EPHEMBDL.ZIP sur place en intranet ou en téléchargement sur le Web.
GREENWIC.EXE ou HEUR_SID.EXE : Donnent l'heure sidérale du méridien de Greenwich (
c'est à dire sa position par rapport aux étoiles ).
RESOLUTION DU PROBLEME DE LAMBERT
DEUX_PTS.EXE Résout le problème de Lambert qui consiste, si elle existe, à déterminer
l'ellipse qui joint deux points de l'espace, en un temps de
voyage fixé.
Le programme
demande de préciser si le point de départ est une planète avec sphère
d'influence, auquel cas vous donnez son nom en minuscules, ou un point
mathématique, alors défini par ses trois coordonnées qui vous sont demandées.
Pour
l'arrivée, les questions sont les mêmes. NB: Lambert1.exe pose moins de
questions et ne prend en compte que des positions en coordonnées cartésiennes
dans un repère géocentrique ou héliocentrique.
Les résultats
sont:
Les
éphémérides des deux planètes éventuellement- les paramètres orbitaux de
l'ellipse cherchée, quand elle existe - les vitesses et positions au départ et
à l'arrivée - Les vitesses à l'infini de départ et d'arrivée.- Le cas de vol.
GIBBS.EXE : Programme qui pourrait intéresser les radios amateurs. En entrée il
demande trois rayons vecteurs issus d'une localisation satellite, à partir
d'une même station renseignée en altitude, latitude et longitude. En sortie, on
obtient les paramètres orbitaux du satellite.
LAMBERT1.EXE: Résout le problème de Lambert qui consiste à déterminer la conique ellipse ou hyperbole, qui joint deux points de l'espace donnés par leurs
coordonnées cartésiennes, en un temps de voyage fixé, y compris dans le cas de
tours supplémentaires avant rencontre.
Les résultats
sont très complets , concernant la conique de transfert et ses paramètres
orbitaux. Les sorties se font soit à l'écran soit dans un fichier texte à
préciser par son chemin complet.
LAMBERTC.EXE: Routine réalisée en 2003 par Mlles DAUVIN & CASTELLANI dans le
cadre d'un projet de fin de cours.
Résout en C++
le problème de Lambert qui consiste à déterminer la conique ellipse ou hyperbole, qui joint deux points de l'espace donnés par leurs
coordonnées cartésiennes, en un temps de voyage fixé, y compris dans le cas de
tours supplémentaires avant rencontre.
Les résultats
sont très complets , concernant la conique de transfert et ses paramètres
orbitaux. Les sorties se font soit à l'écran soit dans un fichier texte à
préciser par son chemin complet. La présentation y est soignée.
NASA_NOR.EXE : Ce logiciel est précieux pour tous ceux qui
utilisent le codage NASA-NORAD d'un satellite sous la forme des deux lignes (
two lines), en effet ce codage est loin d'être explicite.
En
particulier, ce codage est nécessaire pour utiliser le shareware TRAKSAT et
placer ces deux lignes dans le répertoire des satellites. Ci dessous les fameuses two lines:
Satellite 1
1 2U
19346.09229167 0.00000000 000000-0 000000-0 0 4
2 2 45.0000
125.0000 2135000 0.0000 14.4789 14.23568900 126
ATTENTION: Au
départ, il vous est demandé de donner le chemin complet, y compris
l'extension, d'un fichier texte où ces deux lignes doivent être
ajoutées.
Ensuite, classiquement
des paramètres orbitaux, sauf pour a qui est remplacé par la demande du moyen
mouvement n en révolutions par jour.
ORBITE.EXE : Exécutable réalisé en 2000 par un
"ancien" du DESS, nommé Pierre MESSI. Très riche de possibilités, il
permet de visualiser en particulier des trajectoires, moyennant la donnée des
paramètres orbitaux.
PAR_RV_W.EXE : Cette logique dont le nom indique le but, fournit le
vecteur position - vitesse par ses coordonnées dans le géocentrique,
connaissant les paramètres orbitaux, qui vous sont demandés.
PAR_RV_H.EXE : Cette logique dont le nom indique le but, fournit le
vecteur position - vitesse par ses coordonnées dans le GEOCENTRIQUE ou
L'HELIOCENTRIQUE, connaissant les paramètres orbitaux, qui vous sont demandés
et ceci pour une orbite ELLIPTIQUE ou HYPERBOLIQUE. En sortie il y a aussi les
composantes des vecteurs du repère périfocal.
PAR_RV_S.EXE : Cette logique dont le nom indique le but, fournit le
vecteur position - vitesse par ses coordonnées dans le repère héliocentrique,
connaissant les paramètres orbitaux, qui vous sont demandés. Le dernier des
paramètres orbitaux est au choix :
L'anomalie
excentrique
L'anomalie
vraie
L'anomalie
moyenne
Le temps en
jours depuis le périgée
En retour,
outre position et vitesse, il est fourni l'anomalie excentrique et le temps
depuis le périgée dans tous les cas.
RV_PAR_W.EXE : Calcule les paramètres orbitaux d'une trajectoire ELLIPTIQUE
autour d'un astre quelconque, en fonction des vecteurs position r et vitesse V.
RV_PAR_S.EXE : Calcule les paramètres orbitaux d'une trajectoire héliocentrique ELLIPTIQUE,
en fonction des vecteur position r et vitesse V.
RV_PAR_H.EXE : Calcule les paramètres orbitaux d'une trajectoire ELLIPTIQUE ou
HYPERBOLIQUE héliocentrique ou géocentrique ou autre , en fonction des vecteur
position r et vitesse V
SURVOL.EXE : Donne les points survolés ( nombre à choisir par période et nombre de
périodes ) connaissant les paramètres orbitaux.
TER_MARS.EXE : Permet le calcul de la trajectoire de transfert de la Terre vers Mars
en se donnant la date de départ et celle d'arrivée. Toutes les caractéristiques
de l'orbite de transfert sont calculées ainsi que les vitesses à l'infini de
départ et d'arrivée.
TER_HALL: Permet le calcul de la trajectoire de transfert de la Terre vers Mars
en se donnant la date de départ et celle d'arrivée. Toutes les caractéristiques
de l'orbite de transfert sont calculées ainsi que les vitesses à l'infini de
départ et d'arrivée.
TERVENUS.EXE : Permet le calcul de la trajectoire de transfert de la Terre vers
Vénus en se donnant la date de départ et celle d'arrivée. Toutes les caractéristiques
de l'orbite de transfert sont calculées ainsi que les vitesses à l'infini de
départ et d'arrivée.
TIRPAR_W.EXE : Logique fournissant les paramètres orbitaux
connaissant les paramètres d'injection.
NB: Attention à la donnée de la constante de gravitation
sous la forme 39.86 e4 ou 3986000 ou 13.27 e4 etc...
VECTFOND.EXE : Routine fournissant les composantes des vecteurs
fondamentaux ( excentricité - nodal - moment cinétique réduit ) connaissant les
vecteurs position et vitesse dans le géocentrique.
VISIBILI.EXE : Logiciel spécifiquement adapté au traitement des
résultats numériques de simulations par le shareware TRAKSAT, après avoir allégé les lignes
inutiles. Le résultat montre les créneaux de visibilité du
satellite à partir d'une station donnée, avec une élévation minimale donnée.
VISISTAT.EXE : Logiciel donnant la visibilité d'un satellite caractérisé par ses
paramètres orbitaux ( ou ses TLE ), d'une station terrestre à renseigner.
Cas 1 |
Seulement la visibilité oui/non |
Cas 2 |
Sortie de Distance, Elévation, Azimut |
Cas 3 |
Pour un jour Julien donné, sortie des heures d'entrée et de sortie de visibilité |
IV- SHAREWARE --> PCTRACK ou
traksat:
Cve shareware
est particulièrement bien réalisé par quelqu'un qui a visiblement travaillé
dans le domaine spatial.
Vous n'oublierez
pas de le contacter, si le logiciel vous convient ( 30$ en 1993 ), voici les
coordonnées de l'auteur :
TRAUFLER Paul
11 Emerald Drive
HARVEST AL,35749
USA
Guiziou Robert décembre 2004, sept 2011
Il existe une version Word 97 nommée routines.doc